import axios from 'axios';
import qs from 'query-string';

export interface MemberId {
    id: number;
}

export interface MemberRecord {
    id: number;
    nickname?: string;
    phone?: string;
    score?: number;
    vip_at?: string;
    created_at?: string;
    card_score_total?: number; // 会员卡云豆总数
    company_name?: string; // 所属公司名称
    company_id?: number | null; // 所属公司ID
    in_black?: number; // 黑名单状态：0-正常，1-禁言，2-禁止下单
    in_black_text?: string; // 黑名单状态文本
    address_total?: number; // 地址数量
}

export interface MemberListRes {
    list: MemberRecord[];
    total: number;
}

export interface MemberModel {
    id: number;
}

export interface MemberParams extends Partial<MemberRecord> {
    current: number;
    pageSize: number;
}

/**
 * 获取会员列表
 * @param params
 */
export function queryMemberList(params: MemberParams) {
    return axios.get<MemberListRes>('/admin/member/index', {
        params,
        paramsSerializer: (obj) => {
            return qs.stringify(obj);
        },
    });
}

/**
 * 更新用户黑名单状态
 * @param params
 */
export function updateMemberBlackStatus(params: { user_id: number; in_black: number }) {
    return axios.post('/admin/member/updateBlackStatus', params);
}

/**
 * 更新用户是否是配货员
 * @param params
 */
export function updateMemberExpressSendUser(params: { user_id: number }) {
    return axios.post('/admin/member/updateExpressSendUser', params);
}
